package com.softtown.modules.workflow.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.softtown.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * @author: Dingyayong
 * @Date: 2019/8/12 16:17
 * @Description: 审批任务实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("swf_task")
public class SwfTaskEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 所属公司id
     */
    private Long compId;

    /**
     * 流程实例id
     */
    private Long procInstId;

    /**
     * 申请提交次数序号
     */
    private Integer applSeqNum;

    /**
     * 审批段id
     */
    private Long phaseId;

    /**
     * 审批人id
     */
    private Long aprvUserId;

    /**
     * 审批人岗位id
     */
    private Long aprvPosnId;

    /**
     * 自己是否为段终审默认值 0：不是   1：是
     */
    private Integer isPhaseLastAprv;

    /**
     * 是否为终审默认值 null：不是   1：是
     */
    private Integer isLastAprv;

    /**
     * 审批结果（最终）1：同意 2：拒绝 3：退回
     */
    private Integer aprvResult;

    /**
     * 审批时间（最终）
     */
    private Date aprvDate;

    /**
     * 审批意见
     */
    private String aprvComment;

    /**
     * 状态 0：已撤销   1：正常
     */
    private Integer status;

    /**
     * 更新者
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updater;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;

    /**
     * 更新时间的时间戳
     */
    private String updateTimestamp;

    /**
     * 逻辑删除 0：未删除   NULL：已删除
     */
    private Integer isDeleted;

    /**
     * 员工名
     */
    @TableField(exist = false)
    private String emplName;

    /**
     * 岗位名
     */
    @TableField(exist = false)
    private String posnName;

    /**
     * 部门名
     */
    @TableField(exist = false)
    private String deptName;

    /**
     * 任务状态
     */
    @TableField(exist = false)
    private Integer taskStatus;
}
